<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .container {
        width: 300px;
        display: flex;
        justify-content: space-between;
      }

      .red-green-light {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
        align-items: center;
        width: 70px;
        height: 240px;
        background-color: #333;
        border-radius: 5px;
      }

      .light {
        width: 60px;
        height: 60px;
        border-radius: 50%;
        background-color: #fff;
      }

      .red-green-light .light:nth-child(1).active {
        background-color: red;
      }

      .red-green-light .light:nth-child(2).active {
        background-color: green;
      }

      .red-green-light .light:nth-child(3).active {
        background-color: goldenrod;
      }
    </style>
  </head>

  <body>
    <div class="container">
      <div class="red-green-light">
        <div class="light red"></div>
        <div class="light green"></div>
        <div class="light yellow"></div>
      </div>
    </div>
  </body>

  <script>
    // 让灯亮的方法
    const openLight = (node) => node.classList.add('active')
    // 让灯灭的方法
    const offLight = (node) => node.classList.remove('active')

    const red = document.querySelector('.red')
    const green = document.querySelector('.green')
    const yellow = document.querySelector('.yellow')
    // 回调地狱
    openLight(red)
    setTimeout(function () {
      offLight(red)
      openLight(green)
      setTimeout(() => {
        offLight(green)
        openLight(yellow)
        setTimeout(() => {
          offLight(yellow)
        }, 1000)
      }, 2000)
    }, 3000)
  </script>
</html>
